{include file='edit.tpl'}

<div id='yml_categories' style="display:none;">
	<div></div>
	<div style="padding:20px; text-align:right;">
		<button id='assign_categories'>Назначить соответствие...</button>
	</div>
</div>

<div id='yml_results' style="display:none;">
	<div style="font-weight:bold;"></div>
</div>

<script>
	{if $step == 1}
		createTabs = function() {
			if ('id' in k) {
				addTab('yml_results','Результаты');
				$('#yml_results').show();
			}
		};		
	{else if $step == 2}
		createTabs = function() {
			addTab('yml_categories','Соответствие категорий');
		};
	{else if $step==3}
		createTabs = function() {
			addTab('yml_results','Результаты');
			$('#yml_results').show();
		};		
	{/if}
	
	$(function() {
		{if $step==1 || $step==3}
			console.log($(':hidden[data-fname=url]').val());
			$('input.file_from_url[data-fname=url]').val($(':hidden[data-fname=url]').val()).trigger('keyup');
			$('div[data-fname=url]').hide();
		{/if}

		{if $step==1}
			$('.editSave').hide();
			$('.editApply').button('option', 'label', 'Далее').button('option', 'icons', { secondary:'ui-icon-triangle-1-e' } );
			if ('id' in k) {
				showResults(k.id);
			}
		{else if $step==2}
			var selectedCats = [];
			var assignedCats = {$assigned}; //from: to
			var ymlID = {$ymlID};
			
			$('#yml_categories').show();
			$('#tabs').tabs('remove',0);
			$('.editSave').hide();
			$('.editApply').button('option', 'label', 'Загрузить').button('option', 'icons', { primary:'ui-icon-arrowreturnthick-1-n' } );
			$('.editCancel').button('option','label','Закрыть');

			$('#yml_categories').append('<input type=hidden name="p[yml_id]" value="{$ymlID}">');
			$('#yml_categories').append('<input type=hidden name="p[file_path]" value="{$file_path}">');

			catTree = new jPineCheck($('#yml_categories > div')[0], {$allCategories});
			catTree.onCheck = function(item) {
				if (item.properties.checked) {
					selectedCats.push(item.properties.id);
					$('#assign_categories').button('enable');
				} else {
					if (item.properties.value) {
						call('admin.doAction',{ 'id':'import_yml_del_category', params:{ yml_id:ymlID, from_id:item.properties.id }}).done(function(){
							delete assignedCats[item.properties.id];
						});
					} else {
						selectedCats.splice(selectedCats.indexOf(item.properties.id),1);
						if (!selectedCats.length) {
							$('#assign_categories').button('disable');
						}
					}
					item.properties.value = '';
					catTree.renderer.update(item);
				}
			}
			catTree.forEach(function(item){
				if (item.properties.id in assignedCats) {
					catTree.doCheck(item);
					onCheckCat(assignedCats[item.properties.id],item);
				}
			});
			selectedCats = [];
			catTree.expandAll();

			$('#assign_categories')
				.button({
					disabled: true,
					icons: { primary: "ui-icon-transferthick-e-w" }
				})
				.click(function(){
					openDict(
						'groups',
						true, 
						'Добавлять в категорию', 
						function(id,name){ 
							for (var i=0; i<selectedCats.length; ++i) {
								assignedCats[selectedCats[i]] = id;
								catTree.forEach(function(item){
									if (item.properties.id==selectedCats[i]) {
										onCheckCat(id,item);
										return false;
									}
								});
							}
							selectedCats = [];
							$('#assign_categories').button('disable');
								
							showWaitBox();		
							call('admin.doAction',{ 'id':'import_yml_del_all_categories', params:{ yml_id:ymlID }}).done(function(){	
								var IDs = [];
								for (var fromID in assignedCats) {
									if (assignedCats.hasOwnProperty(fromID) && !isNaN(fromID)) {
										IDs.push({
											from_id: fromID,
											to_id: assignedCats[fromID]
										});
									}
								}
								call('admin.doActionBulk',{ 'id':'import_yml_add_category',params:{ yml_id:ymlID },bulkParams:IDs }).done(function(){
									hideWaitBox();
								});
							});
						}, 
						function(){ }
					);
					return false;
				});	
		{else if $step==3}
			$('.editSave').hide();
			$('.editApply').hide();
			showResults({$ymlID});
			$('#tabs').tabs('option', 'selected', 1);
		{/if}
	});
	
	function onCheckCat(id, item) {
		call('shop.getCategory',{ 'id':id }).done(function(item){ return function(cat){	
			var path = '';
			for (var i=0; i<cat.branch.length; ++i) {
				if (path) {
					path += ' &#x2023 ';
				}
				path += cat.branch[i].name;
			}
			item.properties.value = '&#x2192; '+path;
			catTree.renderer.update(item);
		}; }(item));		
	}
	
	function showResults(id) {
		call('admin.findByKey',{ 'vid':'import_yml_results','k':id }).done(function(results){
			if (results.last_state===null){
				$('#yml_results div:first-child').html('Не выполнялся');
			} else if (results.last_state===0){
				$('#yml_results :first-child').html('Ждите, идет загрузка файла...');
				setTimeout(function(id){ return function(){ showResults(id); }}(id),5000);
			} else if (results.last_state==1){
				$('#yml_results :first-child').html('Выполнен успешно');
				$('#yml_results').append(
					$('<div>').html(results.last_run),
					$('<div>').html('Просмотрено позиций: '+results.offerscount),
					$('<div>').html('Загружено позиций: '+results.addedcount),
					$('<div>').html('Обновлено позиций: '+results.updatedcount),
					$('<div>').html('Удалено позиций: '+results.deletedcount)
				);
			} else {
				$('#yml_results :first-child').html('Выполненение не завершено. Произошла ошибка: <br>'+results.last_error);
			}
		});
	}

</script>